<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <canvas id="canvas" width="800" height="600" style="box-shadow: 0 0 10px #000;"></canvas>
</body>

</html>

<script>
  var canvas = document.getElementById('canvas')
  var ctx = canvas.getContext('2d')

  function Ball(x, y, r, speedX, speedY, color) {
    this.x = x;
    this.y = y;
    this.r = r;
    this.speedX = speedX;
    this.speedY = speedX;
    this.color = color

    this.draw = function () {
      console.log(ctx);
      ctx.beginPath()
      ctx.fillStyle = this.color
      ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2)
      ctx.fill()
    }

    this.move = function () {
      this.x += this.speedX
      if (this.x >= canvas.width - this.r || this.x <= this.r) {
        this.speedX *= -1
      }

      this.y += this.speedY
      if (this.y >= canvas.height - this.r || this.y <= this.r) {
        this.speedY *= -1
      }
    }

  }

  var ball = new Ball(100, 100, 50, 2, 2, 'skyblue')
  ball.draw()

  function start() {
    ctx.clearRect(0, 0, canvas.width, canvas.height)
    ball.draw()
    ball.move()
    window.requestAnimationFrame(start)
  }
  start()
</script>